package com.hspedu.newData.dmsxl.贪心算法.mid.两个维度权衡;

import java.util.Arrays;
import java.util.LinkedList;

/**
 * @Author: yh
 * @description: 
 * @CreateTime: 2025-04-27 
 * @Version: 1.0
 */


// todo
public class LC406根据身高重建队列 {

    public int[][] reconstructQueue(int[][] people) {

        // 对people先按照身高排序
        Arrays.sort(people,(a,b)->{
            if (a[0] == b[0]) return a[1] - b[1];
            return b[0] - a[0];
        });

        // 这里排完，可以确认是按照身高排序，后续对k进行排序可以确定，第i个people只要插入到对应的k位置就可以确保它前边有k个值

        LinkedList<int[]> que = new LinkedList<>();
        for (int[] person : people) {
            que.add(person[1],person);
        }
        return que.toArray(new int[que.size()][]);
    }

}
